package com.example.demo.rule;

import com.hxk.sdk.bean.CriteriaScaleVO;
import com.hxk.sdk.criteria.bloodpressure.BloodPressureCriteria;
import com.hxk.sdk.criteria.bloodsugar.BloodSugarCriteria;
import com.hxk.sdk.criteria.bodyfat.BodyFatCriteria;
import com.hxk.sdk.criteria.ecg.EcgCriteria;
import com.hxk.sdk.criteria.oxygen.OxygenCriteria;
import com.hxk.sdk.criteria.temperature.TemperatureCriteria;
import com.hxk.sdk.util.AgeUtil;

import java.util.Date;

/**
 * 各项指标参考范围
 *
 * @author JSON_wangqiang
 * @since 2021/7/16 14:54
 */
public class ReferenceRangeUtil {

    public static void main(String[] args) {
        // 血氧参考范围(单位 %)
        CriteriaScaleVO oxygen = OxygenCriteria.getScale();
        System.out.println("血氧参考范围:" + oxygen);

        // 心电参考范围(单位 次/分)
        CriteriaScaleVO ecg = EcgCriteria.getScale();
        System.out.println("心电参考范围:" + ecg);

        // 血压参考范围(单位 mmHg)
        // 高压（收缩压）
        CriteriaScaleVO sys = BloodPressureCriteria.getSystolicScale();
        System.out.println("血压参考范围:" + sys);
        // 低压（舒张压）
        CriteriaScaleVO dia = BloodPressureCriteria.getDiastolicScale();
        System.out.println("低压参考范围:" + dia);

        // 体温参考范围(单位 ℃)
        CriteriaScaleVO temperature = TemperatureCriteria.getScale();
        System.out.println("体温参考范围:" + temperature);

        // 血糖参考范围(单位 mmol/L)
        String sugType = "00";
        CriteriaScaleVO sugar = BloodSugarCriteria.getScale(sugType);
        System.out.println("血糖参考范围:" + sugar);

        // 计算年龄工具
        int age = AgeUtil.getAge(new Date());
        System.out.println("年龄：" + age);

        // 体脂参考范围
        // BMI(kg/m²)
        CriteriaScaleVO bmi = BodyFatCriteria.getBmiScale();
        System.out.println("BMI参考范围:" + bmi);
        // 体重(kg)
        CriteriaScaleVO w = BodyFatCriteria.getWeightScale(170f);
        System.out.println("体重参考范围:" + w);
        // 体脂率(%)
        CriteriaScaleVO bodyFat = BodyFatCriteria.getBodyFatScale("01", 45);
        System.out.println("体脂率参考范围:" + bodyFat);
        // 基础代谢率(kcal)
        CriteriaScaleVO bmr = BodyFatCriteria.getBmrScale("01", 45);
        System.out.println("基础代谢率参考范围:" + bmr);
        // 体水分率(%)
        CriteriaScaleVO water = BodyFatCriteria.getWaterScale("01");
        System.out.println("体水分率参考范围:" + water);
        // 骨骼含量(kg)
        CriteriaScaleVO bone = BodyFatCriteria.getBoneScale("01", 54.5f);
        System.out.println("骨骼含量参考范围:" + bone);
        // 肌肉含量(%)
        CriteriaScaleVO muscle = BodyFatCriteria.getMuscleScale("01", 170f);
        System.out.println("肌肉含量参考范围:" + muscle);
        // 内脏脂肪(rating)
        CriteriaScaleVO visceralFat = BodyFatCriteria.getVisceralFatScale();
        System.out.println("内脏脂肪参考范围:" + visceralFat);
    }
}